#ifndef _FACTORY_H_
#define _FACTORY_H_

class product;
class factory {
public:
    virtual ~factory() = 0;
    virtual product* createProduct(int num) = 0;

protected:
    factory();

private:

};

class concreteFactory : public factory {
public:
    ~concreteFactory();
    concreteFactory();
    product* createProduct(int num);

protected:

private:
};
#endif